package hawk.example.bookstore.support;

import static java.sql.Types.*;

import glz.hawkframework.mybatis.sql.MybatisParam;
import glz.hawkframework.sql.support.PhysicalTable;
import glz.hawkframework.sql.support.impl.DefaultAliasedNamedColumn;
import glz.hawkframework.sql.support.impl.DefaultPhysicalTable;

public class AuthorSupport {
    public static final PhysicalTable AUTHOR = new DefaultPhysicalTable("AUTHOR");
    public static final DefaultAliasedNamedColumn AUTHOR_ID = new DefaultAliasedNamedColumn("AUTHOR_ID", "authorId");
    public static final DefaultAliasedNamedColumn AUTHOR_NAME = new DefaultAliasedNamedColumn("AUTHOR_NAME", "authorName");
    public static final DefaultAliasedNamedColumn NATIONALITY = new DefaultAliasedNamedColumn("NATIONALITY", "nationality");
    public static final DefaultAliasedNamedColumn CONTACT = new DefaultAliasedNamedColumn("CONTACT", "contact");
    public static final DefaultAliasedNamedColumn CREATE_DATE_TIME = new DefaultAliasedNamedColumn("CREATE_DATE_TIME", "createDateTime");
    public static final DefaultAliasedNamedColumn UPDATE_DATE_TIME = new DefaultAliasedNamedColumn("UPDATE_DATE_TIME", "updateDateTime");
    public static final DefaultAliasedNamedColumn DELETE_DATE_TIME = new DefaultAliasedNamedColumn("DELETE_DATE_TIME", "deleteDateTime");
    public static final DefaultAliasedNamedColumn CREATE_USER_ID = new DefaultAliasedNamedColumn("CREATE_USER_ID", "createUserId");
    public static final DefaultAliasedNamedColumn UPDATE_USER_ID = new DefaultAliasedNamedColumn("UPDATE_USER_ID", "updateUserId");
    public static final DefaultAliasedNamedColumn DELETE_USER_ID = new DefaultAliasedNamedColumn("DELETE_USER_ID", "deleteUserId");
    public static final DefaultAliasedNamedColumn RECORD_VERSION = new DefaultAliasedNamedColumn("RECORD_VERSION", "recordVersion");
    public static final DefaultAliasedNamedColumn[] COLUMNS = new DefaultAliasedNamedColumn[]{AUTHOR_ID, AUTHOR_NAME, NATIONALITY, CONTACT, CREATE_DATE_TIME, UPDATE_DATE_TIME, DELETE_DATE_TIME, CREATE_USER_ID, UPDATE_USER_ID, DELETE_USER_ID, RECORD_VERSION};
    public static final MybatisParam PARAM_AUTHOR_ID = MybatisParam.builder("authorId", NUMERIC).build();
    public static final MybatisParam PARAM_AUTHOR_NAME = MybatisParam.builder("authorName", VARCHAR).build();
    public static final MybatisParam PARAM_NATIONALITY = MybatisParam.builder("nationality", VARCHAR).build();
    public static final MybatisParam PARAM_CONTACT = MybatisParam.builder("contact", VARCHAR).build();
    public static final MybatisParam PARAM_CREATE_DATE_TIME = MybatisParam.builder("createDateTime", TIMESTAMP).build();
    public static final MybatisParam PARAM_UPDATE_DATE_TIME = MybatisParam.builder("updateDateTime", TIMESTAMP).build();
    public static final MybatisParam PARAM_DELETE_DATE_TIME = MybatisParam.builder("deleteDateTime", TIMESTAMP).build();
    public static final MybatisParam PARAM_CREATE_USER_ID = MybatisParam.builder("createUserId", VARCHAR).build();
    public static final MybatisParam PARAM_UPDATE_USER_ID = MybatisParam.builder("updateUserId", VARCHAR).build();
    public static final MybatisParam PARAM_DELETE_USER_ID = MybatisParam.builder("deleteUserId", VARCHAR).build();
    public static final MybatisParam PARAM_RECORD_VERSION = MybatisParam.builder("recordVersion", NUMERIC).build();
    public static final MybatisParam[] PARAM_COLUMNS = new MybatisParam[]{PARAM_AUTHOR_ID, PARAM_AUTHOR_NAME, PARAM_NATIONALITY, PARAM_CONTACT, PARAM_CREATE_DATE_TIME, PARAM_UPDATE_DATE_TIME, PARAM_DELETE_DATE_TIME, PARAM_CREATE_USER_ID, PARAM_UPDATE_USER_ID, PARAM_DELETE_USER_ID, PARAM_RECORD_VERSION};
}
